<template>
  <div>
    <div v-for="(item, i) in forms" :key="i">
      <input :type="item.type" v-model="item.value">
    </div>
  </div>
</template>
<script>
export default {
  data () {
   return {
     forms:[
       {
       type:'text',
       value:'input2'
      },{
       type:'text',
       value:'input4'
     },{
       type:'password',
       value:'input5'
     },{
       type:'text',
       value:'input6'
     }],
     value: [],
      options: [{
        value: 'zhinan',
        label: '指南',
        children: [{
          value: 'shejiyuanze',
          label: '设计原则',
          children: [{
            value: 'yizhi',
            label: '一致'
          }, {
            value: 'fankui',
            label: '反馈'
          }, {
            value: 'xiaolv',
            label: '效率'
          }, {
            value: 'kekong',
            label: '可控'
          }]
        }, {
          value: 'daohang',
          label: '导航',
          children: [{
            value: 'cexiangdaohang',
            label: '侧向导航'
          }, {
            value: 'dingbudaohang',
            label: '顶部导航'
          }]
        }]
      }, {
        value: 'zujian',
        label: '组件',
        children: [{
          value: 'basic',
          label: 'Basic',
          children: [{
            value: 'layout',
            label: 'Layout 布局'
          }, {
            value: 'color',
            label: 'Color 色彩'
          }, {
            value: 'typography',
            label: 'Typography 字体'
          }, {
            value: 'icon',
            label: 'Icon 图标'
          }, {
            value: 'button',
            label: 'Button 按钮'
          }]
        }, {
          value: 'form',
          label: 'Form',
          children: [{
            value: 'radio',
            label: 'Radio 单选框'
          }, {
            value: 'checkbox',
            label: 'Checkbox 多选框'
          }, {
            value: 'input',
            label: 'Input 输入框'
          }, {
            value: 'input-number',
            label: 'InputNumber 计数器'
          }, {
            value: 'select',
            label: 'Select 选择器'
          }, {
            value: 'cascader',
            label: 'Cascader 级联选择器'
          }, {
            value: 'switch',
            label: 'Switch 开关'
          }, {
            value: 'slider',
            label: 'Slider 滑块'
          }, {
            value: 'time-picker',
            label: 'TimePicker 时间选择器'
          }, {
            value: 'date-picker',
            label: 'DatePicker 日期选择器'
          }, {
            value: 'datetime-picker',
            label: 'DateTimePicker 日期时间选择器'
          }, {
            value: 'upload',
            label: 'Upload 上传'
          }, {
            value: 'rate',
            label: 'Rate 评分'
          }, {
            value: 'form',
            label: 'Form 表单'
          }]
        }, {
          value: 'data',
          label: 'Data',
          children: [{
            value: 'table',
            label: 'Table 表格'
          }, {
            value: 'tag',
            label: 'Tag 标签'
          }, {
            value: 'progress',
            label: 'Progress 进度条'
          }, {
            value: 'tree',
            label: 'Tree 树形控件'
          }, {
            value: 'pagination',
            label: 'Pagination 分页'
          }, {
            value: 'badge',
            label: 'Badge 标记'
          }]
        }, {
          value: 'notice',
          label: 'Notice',
          children: [{
            value: 'alert',
            label: 'Alert 警告'
          }, {
            value: 'loading',
            label: 'Loading 加载'
          }, {
            value: 'message',
            label: 'Message 消息提示'
          }, {
            value: 'message-box',
            label: 'MessageBox 弹框'
          }, {
            value: 'notification',
            label: 'Notification 通知'
          }]
        }, {
          value: 'navigation',
          label: 'Navigation',
          children: [{
            value: 'menu',
            label: 'NavMenu 导航菜单'
          }, {
            value: 'tabs',
            label: 'Tabs 标签页'
          }, {
            value: 'breadcrumb',
            label: 'Breadcrumb 面包屑'
          }, {
            value: 'dropdown',
            label: 'Dropdown 下拉菜单'
          }, {
            value: 'steps',
            label: 'Steps 步骤条'
          }]
        }, {
          value: 'others',
          label: 'Others',
          children: [{
            value: 'dialog',
            label: 'Dialog 对话框'
          }, {
            value: 'tooltip',
            label: 'Tooltip 文字提示'
          }, {
            value: 'popover',
            label: 'Popover 弹出框'
          }, {
            value: 'card',
            label: 'Card 卡片'
          }, {
            value: 'carousel',
            label: 'Carousel 走马灯'
          }, {
            value: 'collapse',
            label: 'Collapse 折叠面板'
          }]
        }]
      }, {
        value: 'ziyuan',
        label: '资源',
        children: [{
          value: 'axure',
          label: 'Axure Components'
        }, {
          value: 'sketch',
          label: 'Sketch Templates'
        }, {
          value: 'jiaohu',
          label: '组件交互文档'
        }]
      }],
   }
  },
  mounted(){
    let arrs = []
    this.options.forEach(a => {
      arrs.push({name: a.value, children:[]})
        arrs.forEach(x => {
          a.children.forEach(b => {
            x.children.push({name: b.value, children:[]})
            console.log(b)
            if(b.children){
                b.children.forEach(c => {
                  x.children.forEach(y => {
                    y.children.push({name: c.value})
                  })
              })
            }
            
          })
        })
    })
    console.log(arrs);
    var list = [{
                id: 1,
                name: '超级管理',
                parent_id: 0
            },
            {
                id: 2,
                name: '用户管理',
                parent_id: 1
            },
            {
                id: 3,
                name: '部门管理',
                parent_id: 1
            },
            {
                id: 4,
                name: '日志管理',
                parent_id: 1
            },{
                id: 5,
                name: '操作用户',
                parent_id: 2
            },
            {
                id: 6,
                name: '查看用户',
                parent_id: 2
            },
            {
                id: 7,
                name: '用户新增',
                parent_id: 5
            },
            {
                id: 8,
                name: '用户删除',
                parent_id: 5
            }]

/**
         * 树状的算法
         * @params list     代转化数组
         * @params parentId 起始节点
         */
        getTrees(list, 0)
        function getTrees(list, parentId) {
            let items = {};
            // 获取每个节点的直属子节点，*记住是直属，不是所有子节点
            for(let i = 0; i < list.length; i++) {
                let key = list[i].parent_id;
                if(items[key]) {
                    items[key].push(list[i]);
                } else {
                    items[key] = [];
                    items[key].push(list[i]);
                }
            }
            console.log('items',items)
            console.log('parentId',parentId)
            return formatTree(items, parentId);
        }

        /**
         * 利用递归格式化每个节点
         */
        function formatTree(items, parentId) {
            let result = [];
            if(!items[parentId]) {
                return result;
            }
            for(let t of items[parentId]) {
                t.children = formatTree(items, t.id)
                result.push(t);
            }
            console.log(result)
            return result;
        }
  },
  methods:{
     handleChange(value) {
        console.log(value);
      }
  },
}
</script>
<style lang='less' scoped>
</style>